#ifndef _DOCINFODBBASE_H_
#define _DOCINFODBBASE_H_

#include <vector>
#include "../definition.h"
#include "DocInfomation.h"
 
class DocInfoDBBase
{
public:
    typedef std::vector<DocInfomation> vec_info;
public:
    DocInfoDBBase(STRING dbpath){};
    virtual ~DocInfoDBBase(){};

    virtual VEC_STRING GetAllFolders() = 0;
    virtual void RemoveFolder(STRING folderName) = 0;
    virtual void AddFolder(STRING folderName) = 0;

    virtual void SaveInfo(const DocInfomation* const info) = 0;
    virtual DocInfomation LoadInfo(STRING name) = 0;

    virtual void CreateDB() = 0;
    virtual void LoadDB() = 0;
    virtual void ReleaseDB() = 0;
    virtual void Flush() = 0;
};

#endif /* _DOCINFODBBASE_H_ */
